From ec3975e2728e2389fa529ed28b2c2fa406d16ffc Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Thu, 26 Oct 2017 22:38:57 +0200 Subject: [PATCH] Revert "bpf: one perf event close won't free bpf program attached ..." This reverts commit dcc738d393156dd29ed961ecefe13d96ed5f782f, which was commit ec9dd352d591f0c90402ec67a317c1ed4fb2e638 upstream. It introduces an ABI break that's not easily avoidable. The bug it fixes doesn't seem to have any security impact. Gbp-Pq: Topic debian Gbp-Pq: Name revert-bpf-one-perf-event-close-won-t-free-bpf-program-atta.patch --- include/linux/trace_events.h | 1 - kernel/events/core.c | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/include/linux/trace_events.h b/include/linux/trace_events.h index 60248d644b6..5012b524283 100644 --- a/include/linux/trace_events.h +++ b/include/linux/trace_events.h @@ -277,7 +277,6 @@ struct trace_event_call { int perf_refcount; struct hlist_head __percpu *perf_events; struct bpf_prog *prog; - struct perf_event *bpf_prog_owner; int (*perf_perm)(struct trace_event_call *, struct perf_event *); diff --git a/kernel/events/core.c b/kernel/events/core.c index d9eeaa5c9fe..e6da6838583 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -8126,7 +8126,6 @@ static int perf_event_set_bpf_prog(struct perf_event *event, u32 prog_fd) } } event->tp_event->prog = prog; - event->tp_event->bpf_prog_owner = event; return 0; } @@ -8141,7 +8140,7 @@ static void perf_event_free_bpf_prog(struct perf_event *event) return; prog = event->tp_event->prog; - if (prog && event->tp_event->bpf_prog_owner == event) { + if (prog) { event->tp_event->prog = NULL; bpf_prog_put(prog); } -- 2.30.2